/*
 * Default.h
 *
 *  Created on: Dec 24, 2014
 *      Author: Phong
 */

#ifndef DEFAULT_H_
#define DEFAULT_H_

#define __DOUBLE__

#include <string>
#include <unordered_set>
#include <random>
using namespace std;

#ifdef __DOUBLE__
	typedef double real;
#else
	typedef float real;
#endif

// for standardization (Dictionary)
#define TEMPLATE_NONE 0
#define TEMPLATE_COLLOBERT 1
#define TEMPLATE_GLOVE 2

#define SOFTMAX_NCE 0
#define SOFTMAX_HIER 1

extern int softmaxEst;
extern int kNeg;
extern default_random_engine generator;

#define CGRNN_NORM true

extern int dim;

// for training
extern real lambda;
extern real lambdaL;
extern real largeRandRange;
extern real smallRandRange;

extern real paramLearningRate;
extern real learningRateDecay;
extern real wembLearningRate;

extern int maxNEpoch;
extern int batchSize;
extern int nTop;
extern int evalDevStep;
extern int maxDecreaseCount; 

extern int nThreads;

extern int maxGenLen;

// paths
extern string dataDir;
extern string dicDir;
extern string wembSource;
extern string modelDir;

extern string trainFile;
extern string devFile;
extern string testFile;

// beam search
extern int kDeprels;
extern int kPos;
extern int kWords;
extern int kCaps;
extern int beamsize;




#endif /* DEFAULT_H_ */
